const path = require('path');
const PACKAGE = require('./package.json');
module.exports = {
  lintOnSave: false, // 暂时关闭
  productionSourceMap: false,
  devServer: {
    port: 3000,
    open: true,
    hot: true,
    host: '0.0.0.0',
  },
  //警告 webpack 的性能提示
  configureWebpack: {
    name: PACKAGE.name,
    resolve: {
      alias: {
        '@': path.resolve(__dirname, './'),
      },
    },
    performance: {
      hints: 'warning',
      //入口起点的最大体积 整数类型（以字节为单位）
      maxEntrypointSize: 50000000,
      //生成文件的最大体积 整数类型（以字节为单位 300k）
      maxAssetSize: 30000000,
      //只给出 js 文件的性能提示
      assetFilter: function(assetFilename) {
        return assetFilename.endsWith('.js');
      },
    },
  },
  chainWebpack: (config) => {
    config.when(process.env.NODE_ENV !== 'development', (config) => {
      config.optimization.minimizer('terser').tap((args) => {
        // remove console.*
        args[0].terserOptions.compress.drop_console = true;
        // remove debugger
        args[0].terserOptions.compress.drop_debugger = true;
        // remove console.log
        args[0].terserOptions.compress.pure_funcs = ['console.log'];
        args[0].terserOptions.output = {
          comments: false,
        };
        return args;
      });
    });
    // config.module
    //   .rule('js')
    //   .include.add('/packages')
    //   .end()
    //   .use('babel')
    //   .loader('babel-loader')
    //   .tap((options) => {
    //     // 修改它的选项...
    //     return options;
    //   });
  },
};
